Users of computing devices have been experiencing difficulties with regard to clock scaling, and developers and users have thus been exploring parallel computation in the mainstream. Multi-core central processing units (CPUs), Graphics Processing Units (GPUs), and Field Programmable Gate Arrays (FPGAs) are increasingly being used for computational needs.